import { userAccountCheck } from '@/api/user'

// 定义校验规则提供给vee-validate组件使用
export default {
  // 校验表单用户名account
  account (value) {
    // value是将来使用该规则的表单元素的值
    // 1. 必填
    if (!value) return '请输入用户名'
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字母开头且6-20个字符'
    return true
  },
  // 💥💥💥表单注册页面校验accountApi：添加用户名是否已被使用的接口校验
  async accountApi (value) {
    // value是将来使用该规则的表单元素的值
    // 1. 必填
    if (!value) return '请输入用户名'
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字母开头且6-20个字符'
    const { result: { valid } } = await userAccountCheck(value)
    if (valid) return '该用户名已被注册'
    return true
  },
  // 校验表单密码
  password (value) {
    if (!value) return '请输入密码'
    if (!/^\w{6,24}$/.test(value)) return '密码是6-24个字符'
    return true
  },
  // 🧨🧨🧨注册表单密码二次确认的校验，获取form 表单的值进行对比
  rePassword (value, { form }) {
    if (!value) return '请输入密码'
    if (!/^\w{6,24}$/.test(value)) return '密码是6-24个字符'
    if (value !== form.password) return '两次输入密码不一致'
    return true
  },
  // 校验表单手机号码
  mobile (value) {
    if (!value) return '请输入手机号'
    if (!/^1[3-9]\d{9}$/.test(value)) return '手机号格式错误'
    return true
  },
  // 校验表单密码
  code (value) {
    if (!value) return '请输入验证码'
    if (!/^\d{6}$/.test(value)) return '验证码是6个数字'
    return true
  },
  // 校验勾选状态
  isAgree (value) {
    if (!value) return '请勾选同意用户协议'
    return true
  }
}
